package com.tjec.project.system.service;

import com.tjec.project.system.domain.BmsAttachment;
import com.tjec.project.system.domain.vo.BmsAttachmentVo;

import java.util.List;

/**
 * 文件Service接口
 *
 * @author tjec
 * @date 2020-04-27
 */
public interface IBmsAttachmentService {
    /**
     * 查询文件
     *
     * @param guid 文件ID
     * @return 文件
     */
    public BmsAttachment selectBmsAttachmentByGuid(String guid);

    /**
     * 查询文件列表
     *
     * @param bmsAttachment 文件
     * @return 文件集合
     */
    public List<BmsAttachment> selectBmsAttachmentList(BmsAttachment bmsAttachment);

    /**
     * 查询下载文件列表
     *
     * @param guids 文件guids
     * @return 文件集合
     */
    public List<BmsAttachmentVo> selectBmsAttachmentDownload(String guids);
    
    /**
     * 查询下载文件列表
     * @param guids 文件guid数组
     * @return
     */
    public List<BmsAttachmentVo> selectBmsAttachmentDownload(String[] guids);


    /**
     * 查询下载文件绝对路径
     *
     * @param guid 文件guid
     * @return 文件集合
     */
    public List<BmsAttachmentVo> selectBmsAttachmentDownloadabsolute(String guid);

    /**
     * 查询下载文件列表
     *
     * @param bizId    关联类目主表ID
     * @param category 附件类目
     * @return 文件集合
     */
    public List<BmsAttachmentVo> selectBmsAttachmentDownloadByBizId(String bizId, String category);
    
    /**
     * 查询下载文件列表
     *
     * @param bizId    关联类目主表ID
     * @param category 附件类目
     * @return 文件集合
     */
    public List<BmsAttachmentVo> selectBmsAttachmentDownloadByBizIdNew(String bizId, String category);

    /**
     * 新增文件
     *
     * @param bmsAttachment 文件
     * @return 结果
     */
    public int insertBmsAttachment(BmsAttachment bmsAttachment);

    /**
     * 修改文件
     *
     * @param bmsAttachment 文件
     * @return 结果
     */
    public int updateBmsAttachment(BmsAttachment bmsAttachment);

    /**
     * 批量删除文件
     *
     * @param guids 需要删除的文件ID
     * @return 结果
     */
    public int deleteBmsAttachmentByIds(String[] guids);

    /**
     * 删除文件信息
     *
     * @param guid 文件ID
     * @return 结果
     */
    public int deleteBmsAttachmentById(String guid);

    /**
     * 文件更新
     * @param oldGuid
     * @param newGuid
     * @return
     */
    Boolean updateBmsAttachment(String oldGuid, String newGuid);
    
    public List<BmsAttachment> selectBmsAttachmentByBizId(String bizId);
}
